#include "LPC11xx.h"
#include "bitops.h"
#include "key.h"

//初始化按键
void key_init(void)
{
  //启用IOCONFIG模块
  LPC_SYSCON->SYSAHBCLKCTRL |= 1 << 16;
  //配置PIO1_4引脚功能为GPIO
  LPC_IOCON->PIO1_4 &= ~0x7;
  //启用GPIO模块
  LPC_SYSCON->SYSAHBCLKCTRL |= 1 << 6;
  //将PIO1_4引脚配置为输入模式
  LPC_GPIO1->DIR &= ~(1 << 4);
  
  //将UP引脚(PIO1_8)设置为GPIO模式(7.4.5 IOCON_PIO1_8)
  setbits(LPC_IOCON->PIO1_8, 0, 2, 0);
  
  //将UP引脚(PIO1_8)设置为输入模式(12.3.2 GPIO data direction register)
  clrbit(LPC_GPIO1->DIR, 8);
}

//读取ESC按键状态
//按下：返回1
//抬起：返回0
int key_esc_pressed(void)
{
  return !chkbit(LPC_GPIO1->DATA, 4);
}

//读取UP按键状态
int key_up_pressed(void)
{
  return !chkbit(LPC_GPIO1->DATA, 8);
}
